package com.kb.design.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.kb.design.common.Page;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * 交流表 (design_talk)
 *
 * @author 通义灵码
 * @since 2023-10-10
 */
@Data
@TableName("design_talk")
public class DesignTalk extends Page {

    /**
     * ID
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    private Long projectId;

    /**
     * 提出者
     */
    @TableField("pro_personnel")
    private String proPersonnel;

    /**
     * 修改者
     */
    @TableField("update_personnel")
    private String updatePersonnel;

    /**
     * 确认者
     */
    @TableField("confirmed_personnel")
    private String confirmedPersonnel;

    /**
     * 器件名
     */
    @TableField("device_name")
    private String deviceName;

    /**
     * 封装资料
     */
    @TableField("page_data")
    private String pageData;

    /**
     * 资料页码
     */
    @TableField("data_page")
    private String dataPage;

    /**
     * 封装名
     */
    @TableField("page_name")
    private String pageName;

    /**
     * 描述/备注
     */
    @TableField("remark")
    private String remark;

    /**
     * 处理情况
     */
    @TableField("handling")
    private String handling;

    /**
     * 附件url
     */
    @TableField("file_url")
    private String fileUrl;

    /**
     * 型号描述
     */
    @TableField("mode_remark")
    private String modeRemark;

    /**
     * 创建时间
     */
    @TableField(value = "create_time",fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    /**
     * 创建人
     */
    @TableField("create_by")
    private String createBy;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

    /**
     * 更新人
     */
    @TableField("update_by")
    private String updateBy;

    /**
     * 设计问题描述
     */
    @TableField("design_problem_description")
    private String designProblemDescription;

    /**
     * 项目状态
     */
    @TableField("special_description")
    private String specialDescription;

    /**
     * 特殊备注
     */
    @TableField("status")
    private String status;
    private String remarkUrl;
    private String modeRemarkUrl;
    private LocalDate date;

    // 添加逻辑删除字段
//    @TableLogic
    @TableField("del_flag")
    private Integer delFlag;
    @TableField(exist = false)
    private String orderDir;
    @TableField(exist = false)
    private Integer serialNumber;
}
